Bump NPOI from 2.7.3 to 2.7.6#10
Conversation
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
9b9e8ab to
e890f4f
Compare
|
@dependabot rebase |
NPOI 2.7.4 removed the byte[]-only XSSFColor constructor we were using in CellStylePool.ToXssfColor. The replacement (byte[], IIndexedColorMap) requires a 2nd argument we have no need for, and the named-arg form is brittle across NPOI versions. Switch to constructing via CT_Color, which has been the stable backing ctor since NPOI 2.5.x. Encodes the color as ARGB with alpha=0xFF (opaque) — same on-disk representation as before. Verified: still builds on 2.7.3 (current pin); style-related tests pass. Unblocks the NPOI 2.7.3 -> 2.7.6 dependabot bump (PR #10).
|
@dependabot rebase |
--- updated-dependencies: - dependency-name: NPOI dependency-version: 2.7.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
e890f4f to
eba6502
Compare
|
Closing this PR. NPOI 2.7.6's nuspec is still Apache-2.0 (no OSMF — that's 2.8.0+ only), but the 2.7.x patch line is mid-migration to whatever API shape NPOI is heading toward for 2.8.0:
Two breaking API churn events in patch releases is not patch-release discipline. Separate consideration: we already override Per decision I23, we stay on NPOI 2.7.3 (last clean Apache-2.0 release pre-OSMF). The forward-compat fix landed on main ( Updating |
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
…ache to v5 Two follow-ups to the dep wave: NPOI: closed PR #10 (2.7.3 -> 2.7.6) because the 2.7.x patch line has introduced breaking API changes twice (2.7.4 removed byte[]-only XSSFColor ctor; 2.7.6 [Obsolete]s the CT_Color ctor — both relied on by our CellStylePool.ToXssfColor). The earlier forward-compat fix (commit 42fbda3) keeps our code resilient if we ever do take a 2.7.x patch, but we're not auto-merging them. Dependabot ignore expanded to also cover semver-patch on NPOI — we opt in manually if upstream stabilizes. Documented in the inline comment. actions/cache: v4 -> v5 (latest 5.0.5, Node.js 24-ready). Resolves the deprecation notice that fired on the last bench workflow run. Verified via gh api repos/actions/cache/releases/latest.
Wire ICell.SetRichText / GetRichText on the SDK engine. A rich-text value is written as an inline rich string (<c t="inlineStr"><is> with one <r> per RichTextRun); each run's <rPr> font axes (bold/italic/underline/size/ color/rFont) are built by the new OoxmlStylePool run-property helper, which reuses the existing color/underline maps but emits inline run properties rather than a cellXfs font index. The marquee semantic (lesson #10): a run whose RichTextStyle is empty is written with NO <rPr>, so it inherits the cell font — faithfully modeling the unformatted-prefix-run inheritance that NPOI's fully-explicit run fonts could not preserve. On read, a run with no <rPr> maps back to RichTextStyle.Default. A rich-text cell's Kind is CellKind.String and GetString returns the concatenated run text; GetRichText returns null for a plain string or a non-string cell, reading inline <is> runs and (for opened files) shared-string <si> runs. Empty-text runs contribute no formatting run, and the cell-text-length limit is enforced on the concatenated text. Parallel-engine rules respected: touches only Internal/Ooxml*.cs and OoxmlEngine.Tests; no public-API change (both members already on ICell).
…I-82) The single biggest cutover de-risk (advisor O-13 / D-11): until now NPOI<->SDK behavioral parity was maintained by hand cross-checking, with no test running the SAME scenario through BOTH engines. This harness does exactly that — each case builds via the public API, round-trips (Save->Open) through Workbook.Create()/Open() (NPOI) and Workbook.CreateOoxml()/OpenOoxml() (SDK), reads an observable projection, and asserts the two engines agree. Covers cell values/kinds, 1900/1904 dates, rich-text runs, cell styles, merges, named ranges, sheet visibility/gridlines, column width/hidden, row height/hidden, and two-cell picture anchors (FromCell/ToCell + EMU offsets). Compared SEMANTICALLY, not byte-identical XML: the engines legitimately differ on unset-axis materialization (NPOI resolves a cell that sets no number format to "General" / an unsized run to FontSize 11; the SDK preserves the inherit semantic as null — SDK-quirk #6 / lesson #10). Projections compare the axes each scenario sets and pull those defaults out, documenting the divergence rather than hiding it. Malformed-input parity (the silent-default-vs-fail-loud half) lands next, with the I-83 fail-loud alignment.
Implements ISheet.AddChart (all six ChartTypes) + IChart (Sheet/Type/ SetTitle) on the SDK engine: a ChartPart hung off the sheet's DrawingsPart, referenced from an xdr:graphicFrame in a twoCellAnchor with the exclusive end-cell convention (quirk #10 checked against the NPOI oracle, not assumed). strCache/numCache snapshot the referenced cells at AddChart time with NPOI's skip semantics (ptCount = full range; only type-matching cells get a pt). The chart XML was oracle-dumped from the NPOI engine for all six types before implementing (quirk #11). Documented conformance-positive divergences (quirk #14): pie dPt list in CT_PieSer schema order (NPOI emits it after val), no dangling pie axes, scatter plotted on two value axes (NPOI pairs a catAx), nonzero cNvPr ids (NPOI emits id=0), editAs omitted (schema default). IChart.Underlying (NPOI XSSFChart) throws NotSupportedException on the SDK engine — the established escape-hatch divergence. New ChartTests (33) incl. a cross-engine emission-projection parity test, plus two schema-gate fixtures; all six chart types validate clean under Microsoft365.
Updated NPOI from 2.7.3 to 2.7.6.
Release notes
Sourced from NPOI's releases.
2.7.6
Release Notes
Nuget Link
What's Changed
New Contributors
Full Changelog: nissl-lab/npoi@2.7.5-rc1...2.7.6-rc1
2.7.5
Nuget link
Release Notes
What's Changed
New Contributors
Full Changelog: nissl-lab/npoi@2.7.4-rc3...2.7.5-rc1
2.7.4
Nuget Link
Release Notes
What's Changed
New Contributors
... (truncated)
Commits viewable in compare view.